let promise= new Promise((resolve,reject)=>{
    // resolve('成功') // => Promise { '成功' }
    reject('失败') // =>Promise { <rejected> '失败' }
})
console.log(promise)




// promise 使用案例：封装Ajax
function ajax(url) {
    return new Promise(function (resolve, reject) {
        let xhr = new XMLHttpRequest()
        xhr.open('GET', url)
        xhr.responseType = 'json'
        xhr.onload = function () {
            if (this.status === 200) {
                resolve(this.response)
            } else {
                reject(new Error(this.statusText));
            }
        }
        xhr.send()
    })
}

ajax('/api/user.json').then(res=>{
    console.log(res)
},error=>{
    console.log(error)
})
// promise  onFulFilled  onRejected


// promise.then  .catch [链式]


//  `promise` 的静态`static`方法 [resolve]、[reject]



// promise 并行执行  promise.all(), promise.race()
// 请求多个接口，接口直接没有参数联系
let promise = Promise.all([
    ajax('/api/users.json'),
    ajax('/api/post.json')
])
